﻿namespace _3.装饰模式;

public class Program
{
    static void Main(string[] args)
    {
        /* 
         * 装饰模式（Decorator）：动态地给一个对象添加一些额外的指责，就增加功能来说，装饰模式比生成子类更加灵活。
         */
        Person xc = new Person("小菜");
        Console.WriteLine("\n第一种装扮：");

        Sneakers pqx = new Sneakers();
        BigTrousers kk = new BigTrousers();
        Tshirts dtx = new Tshirts();

        pqx.Decorate(xc);
        kk.Decorate(pqx);
        dtx.Decorate(kk);
        dtx.Show();


        Console.WriteLine("\n第二种装扮：");

        LeatherShoes px = new LeatherShoes();
        Tie ld = new Tie();
        Suit xz = new Suit();

        px.Decorate(xc);
        ld.Decorate(px);
        xz.Decorate(ld);
        xz.Show();

        Console.ReadKey();
    }
}